import lombok.extern.slf4j.Slf4j;

import java.io.*;

/**
 * @Author ycb
 * @Version 1.0
 * @Date 2024/10/4 16:28
 */
@Slf4j
public class testA {
    public static void main(String[] args) throws Exception{
        //删除src/main/java/com/ycb/pojo中带有tableId的行，以及下划线替换成大写的
        File path = new File("E:\\瑞吉外卖\\Ruiji\\src\\main\\java\\com\\ycb\\pojo");
        File[] files = path.listFiles();
        for (File file : files) {
            //要替换的旧内容
            String oldStr = "_";
            //替换成的新内容
            // 创建文件输入输出流，BufferedReader比FileReader性能更高
            BufferedReader fileReader = new BufferedReader(new FileReader(file));
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));
            try {
                StringBuilder sb = new StringBuilder();
                // 读取的字符数，如果已到达流的末尾，则返回 -1
                String str;
                while ((str = fileReader.readLine()) != null) {
                    int i = str.indexOf(oldStr);
                    if (i == -1) {
                        continue;
                    }
                    // 生成字符串，并替换搜索文本
                    log.info("转换前:{}", str);
                    String substring1 = str.substring(i, i + 2);
                    char c = str.substring(i + 1, i + 2).charAt(0);
                    if (Character.isUpperCase(c)) {
                        continue;
                    }
                    log.info("替换字符,{},替换后字符:{}",substring1,c);
                    String newStr = str.replace(substring1, String.valueOf(c).toUpperCase());
                    log.info("转换后:{}", newStr);
                    log.info("/n");
                    bufferedWriter.write(newStr);
                }
                // // 创建输出流，注意，输入流和输出流不能同时创建，会导致写入文件为空
                // try (FileWriter fileWriter = new FileWriter(file)) {
                //     // 把替换完成的字符串写入文件内

                //     //若非目录(即文件)，则打印，提示替换完成
                //     System.out.println(file.getPath() + "已完成替换。");
                // }
                // log.info("转化完成，:{}",str);
            } catch (IOException e) {
                System.out.println("IO异常");
            } finally {
                bufferedWriter.flush();
                fileReader.close();
                bufferedWriter.close();
            }
        }
    }
}
